package main

//排列组合
//f(0)=1
//f(1)=10
//f(2)=9*9+f(1)
//f(3)=9*9*8+f(2)
//f(4)=9*9*8*7+f(3)

//func countNumbersWithUniqueDigits(n int) int {
//	if n == 0 {
//		return 1
//	}
//	sum := 0
//	factor := 1
//	for i := 1; i < n; i++ {
//		factor *= (10 - i)
//		sum += 9 * factor
//	}
//	return sum + 10
//}

func countNumbersWithUniqueDigits(n int) int {
	switch n {
	case 0:
		return 1
	case 1:
		return 10
	case 2:
		return 91
	case 3:
		return 739
	case 4:
		return 5275
	case 5:
		return 32491
	case 6:
		return 168571
	case 7:
		return 712891
	case 8:
		return 2345851
	case 9:
		return 5611771
	default:
		return 8877691
	}
}
